home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / GSXSAM.ZIP;1 / CONTROLS.PRG < prev    next >
Encoding:
Text File  |  1993-07-07  |  3.2 KB  |  111 lines

  1. ***************************************************************************
  2. *
  3. * Procedure file: CONTROLS.PRG
  4. *         System: GenScrnX
  5. *        Version: 1.1
  6. *         Author: Ken R. Levy
  7. *        Company: Jet Propulsion Laboratory
  8. *      Copyright: None (Public Domain)
  9. *
  10. ***************************************************************************
  11. *
  12. * CONTROLS - Controls driver.
  13. *
  14. * Description:
  15. * This program is used as an optional driver for use with GENSCRNX.PRG.
  16. *
  17. * Features:
  18. * Insert spinner template.
  19. * Fill box.
  20. *
  21. * Notes:
  22. * In this program, for clarity/readability reasons, variable names
  23. * are used that are longer than 10 characters.  Note, however, that only
  24. * the first 10 characters are significant.
  25. *
  26. * Important:
  27. * Function calls made from this program may be contained in GENSCRNX.PRG.
  28. * Variable names not declared PRIVATE in this program defined PRIVATE in
  29. * GENSCRNX.PRG.
  30. *
  31. PRIVATE m.str_data,m.r,m.r2,m.str_data,m.str_len,m.at_pos
  32. PRIVATE m.vpos2,m.hpos2,m.height2,m.width2,m.colorpair2
  33. PRIVATE m.spnr_name,m.box_mode
  34.  
  35. * Check for driver disable mode.
  36. IF OBJTYPE=1.AND..NOT.drvenable(PROGRAM())
  37.   GOTO BOTTOM
  38.   RETURN .F.
  39. ENDIF
  40.  
  41. IF .NOT.drvobj().OR.EMPTY(COMMENT)
  42.   RETURN .F.
  43. ENDIF
  44. m.r=RECNO()
  45. m.vpos2=VPOS
  46. m.hpos2=HPOS
  47. m.height2=HEIGHT
  48. m.width2=WIDTH
  49. DO CASE
  50.   CASE OBJTYPE=15
  51.     m.str_data=wordsearch('*:SPINNER')
  52.     IF m.str_data=m.null
  53.       RETURN .F.
  54.     ENDIF
  55.     m.at_pos=ATC(' ',m.str_data)
  56.     IF m.at_pos=0
  57.       m.spnr_name=m.str_data
  58.     ELSE
  59.       m.spnr_name=LEFT(m.str_data,m.at_pos-1)
  60.       m.str_data=ALLTRIM(SUBSTR(m.str_data,m.at_pos))
  61.     ENDIF
  62.     m.box_mode=.F.
  63.     DO WHILE .NOT.EMPTY(m.str_data)
  64.       IF UPPER(LEFT(m.str_data,3))=='BOX'
  65.         m.box_mode=.T.
  66.         m.str_data=ALLTRIM(SUBSTR(m.str_data,3))
  67.         LOOP
  68.       ENDIF
  69.       EXIT
  70.     ENDDO
  71.     =basobj1('Spinner_Control')
  72.     m.str_len=LEN(m.spnr_name)+1
  73.     m.width2=MAX(WIDTH,5)
  74.     REPLACE WIDTH WITH m.width2    
  75.     IF .NOT.EMPTY(m.spnr_name)
  76.       REPLACE HPOS WITH HPOS+m.str_len
  77.     ENDIF
  78.     IF m.str_len>1.AND.insrec(-1)
  79.       REPLACE OBJTYPE WITH 5, OBJCODE WITH 0,;
  80.               EXPR WITH "'"+m.spnr_name+"'", VPOS WITH m.vpos2,;
  81.               HPOS WITH m.hpos2, HEIGHT WITH 1, WIDTH WITH m.str_len-1
  82.       SKIP
  83.       IF ALLTRIM(m.platform_)=='WINDOWS'
  84.         REPLACE HPOS WITH HPOS+4
  85.       ENDIF
  86.       m.r=RECNO()
  87.     ENDIF
  88.     m.r=RECNO()
  89.     IF m.box_mode.AND.m.vpos2>=1.AND.m.hpos2>=1.AND.;
  90.        (m.vpos2+m.height2+2)<m.height.AND.;
  91.        (m.hpos2+m.width2+m.str_len+2)<m.width.AND.insrec()
  92.       REPLACE OBJTYPE WITH 7, OBJCODE WITH 4, VPOS WITH m.vpos2-1,;
  93.               HPOS WITH m.hpos2-1, HEIGHT WITH m.height2+2,;
  94.               WIDTH WITH m.width2+m.str_len+2, FILLCHAR WITH m.null,;
  95.               COLORPAIR WITH 'BG/B'
  96.     ENDIF
  97.     GOTO m.r
  98.   CASE OBJTYPE=7
  99.     m.str_data=wordsearch('*:FILL')
  100.     IF m.str_data=m.null
  101.       RETURN .F.
  102.     ENDIF
  103.     m.colorpair2=IIF(EMPTY(COLORPAIR),'',' COLOR '+COLORPAIR)
  104.     =instxt1("@ "+STR(VPOS,3)+","+;
  105.              STR(HPOS,3)+" FILL TO "+STR(VPOS+HEIGHT-1,3)+","+;
  106.              STR(HPOS+WIDTH-1,3)+m.colorpair2)
  107.   OTHERWISE
  108.     RETURN .F.
  109. ENDCASE
  110. RETURN .T.
  111.